In today's “information age,” numerous computing systems produce, collect and/or store vast amounts of data at lightning speed. Some types of data collected by a computing system during a specific period time may follow a similar pattern as data collected during earlier time periods. For example, when large amounts of data are collected based on user behavior over several days or weeks, data collected today may follow a similar pattern as data collected in the past. Therefore, time series data produced by a system may be analyzed to build models to extract patterns and predict future data. For example, the number of “likes” that are expected to be processed by a social network on a particular day may correlate with the number of “likes” that were processed on one or more previous days. A computing system may employ predictions to allocate computing resources, e.g., processors, memory, storage, etc., so that processing data does not exceed a particular threshold. For example, in response to a prediction that the system will process a large volume of data on a future day, more computing resources may be allocated to the system on that future day.
Although patterns may generally exist in times series data, these patterns may occasionally be broken for various reasons, resulting in various anomalies. For example, the number of “like” actions in a social network may unexpectedly drop on a particular day due to a lack of cellular phone reception within a geographical region, preventing users from interacting with the social network on their cellular devices. Similarly, an Internet server or connection may have unexpectedly been unavailable or taken down for service, etc. Thus, an anomaly may cause observations (e.g. actual data) to deviate from predictions. Moreover, an anomaly may affect future predictions due to the time-dependent nature of particular data models, in that a particular model could make a prediction that echoes an anomaly that is unlikely to occur again. Such false predictions may cause an incorrect allocation of computing resources, which may lead to additional system instability or other issues.
The headings provided herein are for convenience only and do not necessarily affect the scope or meaning of the claimed embodiments. Further, the drawings have not necessarily been drawn to scale. For example, the dimensions of some of the elements in the figures may be expanded or reduced to help improve the understanding of the embodiments. Similarly, some components and/or operations may be separated into different blocks or combined into a single block for the purposes of discussion of some of the embodiments. Moreover, while the various embodiments are amenable to various modifications and alternative forms, specific embodiments have been shown by way of example in the drawings and are described in detail below. The intention, however, is not to limit the particular embodiments described. On the contrary, the embodiments are intended to cover all modifications, equivalents, and alternatives falling within the scope of the disclosed embodiments as defined by the appended claims.